查看原文
其他

召唤超参调优开源新神器:集XGBoost、TensorFlow、PyTorch、MXNet等十大模块于一身

CSDN App AI科技大本营 2020-02-17

整理 | 凯隐
编辑 | Jane
出品 | AI科技大本营(ID:rgznai100)
 
【导读】Optuna是一款为机器学习任务设计的自动超参数优化软件框架,是一款按运行定义(define-by-run) 原则设计的优化软件,允许用户动态地调整搜索空间,在同类软件中尤属首创,是下一代超参调优框架的代表。接下来,带大家了解 Optuna——新一代超参调优框架。 
             

超参调优简介

 
在训练神经网络时,模型结构尺度,例如深度,宽度,每层分辨率等,都会影响到模型的最终性能,从这些参数组合中找到最适合当前任务的参数,就是常说的超参调优。
              
传统的超参调优方法是经验性的手动调整参数,并记录实验结果,然后通过人工分析对比确定下一步的参数调整方向,这种方法吃力且效率低,还容易出错。Optuna的出现大大降低了超参调优的难度,下面让我们来看看Pptuna是如何工作的吧!
 
Optuna工作方式和特点
 
1、按运行定义
 
首先通过 pip 命令安装 Optuna:
 
             
 
以层数搜索为例,我们需要优化的是一个用于分类的多层感知器的层数以及每一层的神经元个数:
              
将运行代码(5-11行)重新嵌入到试验(trial)函数中,试验函数通过单次执行代码来得到一组参数组合下的结果:
              
然后添加一个关于层数的 for 循环:
              
以及每层中神经元个数的 for 循环:
              
最后定义一个 study 对象,将trial训练结果作为优化目标,便可以通过多次实验找出最优超参数组合,这里设置的实验次数(n_trials=100)是 100 次:
               
完成以上步骤,便可以运行程序,让optuna来自动完成搜索过程,因此 Optuan 是一个专门为自动化设计的框架。此外我们可以看到代码编写是非常简单的,且非常灵活,可以随时调整搜索空间和次数上限,这也体现了Optuna按运行定义的特点。
 
2、并行分布式计算
 
上面的例子中我们使用的只是一个很简单的示例网络,但大部分情况下网络和数据集都要比示例大得多,此时 Optuna 的另一个特点就体现出来了:
              
在上述代码中,我们将搜索过程做了并行化处理,这样实际运行时效果就如同下图:
              
并行化处理能大幅减低调优所需时间,从而加速优化过程。此外 Optuna 还具有剪枝优化功能,即提前结束并行化实验中的低质量参数实验,从而提高效率。
 
3、支持多类型任务和框架
 
Optuna 不仅可以用于实验调参,也可以轻松地部署到生产作业以及数据分析任务中:
              
Optuna 的环境依赖非常简单,并且能独立地完成任务:
              
此外,Optuna 还支持许多其他深度学习框架和模块,例如 Tensorflow,Keras,PyTorch,MXNet等。
               
使用 Optuna
 
Optuna可以通过 pip 或 conda 指令进行安装,目前支持 python3.5 以上的版本,更多相关资料详见官网,官方文档,以及 Github 主页。
              
相关阅读:
https://optuna.org/
https://optuna.readthedocs.io/en/stable/
https://github.com/optuna/optuna

(*本文为AI科技大本营翻译文章,转载请微信联系 1092722531)



精彩推荐



2020年,由 CSDN 主办的「Python开发者日」活动(Python Day)正式启动。我们将与 PyCon 官方授权的 PyCon中国社区合作,联手顶尖企业、行业与技术专家,通过精彩的技术干货内容、有趣多元化的活动等诸多体验,共同为中国 IT 技术开发者搭建专业、开放的技术交流与成长的家园。未来,我们和中国万千开发者一起分享技术、践行技术,铸就中国原创技术力量。


【Python Day——北京站】现已正式启动,「新春早鸟票」火热开抢!2020年,我们还将在全国多个城市举办巡回活动,敬请期待!
活动咨询,可扫描下方二维码加入官方交流群~

CSDN「Python Day」咨询群 🔽
来~一起聊聊Python

如果群满100人,无法自动进入,可添加会议小助手微信:婷婷,151 0101 4297(电话同微信)



推荐阅读


    你点的每个“在看”,我都认真当成了AI

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存